#include "Transformacoes.h"

#include <GL\glui.h>
#include <iostream>

using namespace std;
/*
 * Construtor vazio
 */
Transformacoes::Transformacoes() {
}
/*
 * Construtor
 */

// alterar o APLICA

Transformacoes::Transformacoes(vector<Transformacoes*> vecTrans) {
	//glPushMatrix();
	// glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	int tamanho = vecTrans.size();
	vector<Transformacoes*>::iterator it = vecTrans.begin();
	vector<Transformacoes*>::iterator it_end = vecTrans.end();
	for(; it != it_end; it++) {
		(*it)->aplica();
	}
	glGetFloatv(GL_MODELVIEW_MATRIX,&matriz[0][0]);
	// glPopMatrix();
}

/*
 * Funcoes get's e set's
 */
void Transformacoes::aplica() {
	cout << "APLICA()" << endl;
	glMultMatrixf(&matriz[0][0]);
}

/*
void Transformacoes::setMatriz(float[4][4] matriz) {
	this->matriz = matriz;
}*/

void Transformacoes::setPosicaoMatriz(int x, int y, float valor) {
	this->matriz[y][x] = valor;
}

/*
float** Transformacoes::getMatriz() {
	return this->matriz;
}*/

float Transformacoes::getPosicaoMatriz(int x, int y) {
	return this->matriz[y][x];
}